Telegram Group »
Hong Kong »
Библиотека мобильного разработчика | Android iOS Swift Retrofit Moshi Chuck » Telegram Webview
❗Вакансии «Библиотеки программиста»
Привет! Мы ищем контент-менеджеров, которые будут вести наши телеграм-каналы о разработке.
👾 Требования:
— знать принципы залетающего контента
— разбираться в темах, связанных с разработкой
Большим плюсом будет навык программирования на каких-либо языках.
✨ Условия:
— удаленка
— частичная занятость
— сдельная оплата в зависимости от количества задач
🔥 Оставляйте отклик, и мы свяжемся с вами: https://forms.gle/o4BZnsQ526JoqsCq9
Привет! Мы ищем контент-менеджеров, которые будут вести наши телеграм-каналы о разработке.
👾 Требования:
— знать принципы залетающего контента
— разбираться в темах, связанных с разработкой
Большим плюсом будет навык программирования на каких-либо языках.
✨ Условия:
— удаленка
— частичная занятость
— сдельная оплата в зависимости от количества задач
🔥 Оставляйте отклик, и мы свяжемся с вами: https://forms.gle/o4BZnsQ526JoqsCq9
Please open Telegram to view this post
VIEW IN TELEGRAM
Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Android developer (senior) — удалёнка
Senior Fullstack Flutter Developer — от 300 000 ₽, удалёнка
Мобильный разработчик (Flutter/React Native) — удалёнка
Senior iOS Developer (Swift) — от 5 500 до 6 000 $, удалёнка
Android Developer — удалёнка
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Проблема: при работе с несколькими ветками в Git история коммитов может становиться запутанной из-за частых слияний, что усложняет анализ изменений.
Решение: в книге "Mastering Git" автор показывает использование команды git rebase, которая позволяет линейно интегрировать изменения из одной ветки в другую, сохраняя историю чистой и понятной.
Пример кода:
# Переключаемся на ветку feature
git checkout feature
# Выполняем rebase на master
git rebase master
# Если возникают конфликты, разрешаем их и продолжаем rebase
git add <исправленные файлы>
git rebase --continue
# Переключаемся на master и сливаем изменения
git checkout master
git merge feature --ff-only
Преимущества:
— Чистая и линейная история изменений.
— Упрощение процесса ревью кода.
— Лёгкость в отслеживании изменений.
Еще больше полезных книг — в нашем канале @progbook
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😡 А вас тоже бесят облачные сервисы?
Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?
Мы готовим нечто особенное в мире облачных технологий, но сначала хотим услышать правду от тех, кто реально работает с облаками каждый день.
❓Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное
По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег.
⚡️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?
Мы готовим нечто особенное в мире облачных технологий, но сначала хотим услышать правду от тех, кто реально работает с облаками каждый день.
❓Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное
По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег.
⚡️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
В карточках разобрали шесть ключевых принципов защиты API, которые позволят снизить риски взлома, утечки данных и отказа в обслуживании.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
How to: внедряем Jetpack Compose в существующий проект
Хотите использовать современный Compose, но проект уже написан на XML-вёрстке? Разберём, как добавить Compose без переписывания всего кода.
1️⃣ Подготовка проекта
Добавьте зависимости в
2️⃣ Гибридный подход
Используйте
И настраивайте из кода:
3️⃣ Постепенная миграция
🔘 Начинайте с новых экранов
🔘 Рефакторите простые элементы (кнопки, карточки)
🔘 Используйте
4️⃣ Совместная работа View и Compose
Для взаимодействия между частями:
Уже пробовали мигрировать на Compose? Делитесь опытом в комментариях💬
🐸 Библиотека мобильного разработчика
#буст
Хотите использовать современный Compose, но проект уже написан на XML-вёрстке? Разберём, как добавить Compose без переписывания всего кода.
Добавьте зависимости в
build.gradle
:android {
buildFeatures {
compose true
}
}
dependencies {
implementation "androidx.compose.ui:ui:1.6.0"
implementation "androidx.compose.material:material:1.6.0"
}
Используйте
ComposeView
в XML-разметке:<androidx.compose.ui.platform.ComposeView
android:id="@+id/compose_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
И настраивайте из кода:
findViewById<ComposeView>(R.id.compose_view).setContent {
Text("Это Compose внутри старого XML!")
}
Compose
для сложных анимацийДля взаимодействия между частями:
// View → Compose
composeView.setContent {
MyComposeScreen(onClick = { /* обработка */ })
}
// Compose → View
AndroidView({ TextView(context) }) { view ->
view.text = "Текст из Compose"
}
Уже пробовали мигрировать на Compose? Делитесь опытом в комментариях
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Устали вручную проверять каждый сценарий? Этот промпт поможет настроить автотесты быстро и эффективно!
Промпт:
Create a complete test automation setup for mobile app with:
1. UI tests structure for Espresso (Android) / XCTest (iOS)
2. Page Object pattern implementation
3. Test data generation techniques
4. CI/CD integration examples
5. Reporting and screenshot on failure
Provide sample tests for login screen and main app flow.
Add flaky tests prevention techniques
Implement BDD approach with Cucumber
Compare Appium vs native frameworks
Add performance testing examples
Используйте
Explain how to mock backend responses
для изолированного тестированияПример запроса:
// Нужно протестировать:
// - Успешный логин
// - Восстановление пароля
// - Основной функционал приложения
// - Обработку ошибок сети
Какие сценарии автоматизируете в первую очередь? Делитесь опытом в комментариях
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🌧️ Облачная терапия: время выговориться!
Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».
Пора узнать, как обстоят дела с облаками на самом деле. Поэтому мы собираем ваши реальные истории про облачные сервисы.
🤫О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов
⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».
Пора узнать, как обстоят дела с облаками на самом деле. Поэтому мы собираем ваши реальные истории про облачные сервисы.
🤫О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов
⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
Граница в виде «марширующих муравьев» — распространенный элемент пользовательского интерфейса, используемый для обозначения «выбранного» элемента, но предоставляемый Compose модификатор
border()
не справляется с этой задачей.Автор статьи создаст свой собственный. И по ходу дела вы узнаете многое о Paths, измерении путей, рисовании путей и эффектах.
👉 Читать статью
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
rememberUpdatedState
, чтобы избежать устаревших лямбдЕсли вы передаете в Composable лямбду, которая может измениться,
rememberUpdatedState
гарантирует, что вы используете последнюю версию.val updatedOnClick by rememberUpdatedState(newValue = onClick)
LaunchedEffect(Unit) {
delay(1000)
updatedOnClick()
}
Без этого Compose может вызвать старую версию лямбды, что приведет к ошибкам.
pointerInput
для кастомных жестовВыйдете за пределы
clickable
— используйте перетаскивание, мультитач или собственное распознавание сложных жестов.Modifier.pointerInput(Unit) {
detectTapGestures(
onLongPress = { /* do something */ }
)
}
Можно также обнаружить масштабирование с помощью щипков, смахивание или реализовать распознавание кастомных жестов.
Modifier.scrollable
Хотите прокрутить бокс или кастомный макет? Вам не нужно использовать LazyColumn или Column.
val scrollState = rememberScrollState()
Box(
Modifier
.height(200.dp)
.verticalScroll(scrollState)
) {
// Large content goes here
}
Также работает с горизонтальными прокрутками или вложенными скролами с помощью
NestedScrollConnection
.CompositionLocal
для тематического поведенияВместо глубокой передачи параметров используйте
CompositionLocal
для обмена такими значениями, как интервал или предпочтения пользователя.val LocalSpacing = compositionLocalOf { 0.dp }
CompositionLocalProvider(LocalSpacing provides 8.dp) {
MyComposable()
}
@Composable
fun MyComposable() {
val spacing = LocalSpacing.current
Spacer(modifier = Modifier.height(spacing))
}
Идеально подходит для согласования таких элементов дизайна, как интервалы, цвета или размеры шрифтов в больших кодовых базах.
Modifier.graphicsLayer
для создания эффектовgraphicsLayer
предоставляет вам низкоуровневый контроль для применения таких эффектов, как вращение, масштабирование или альфа-канал, прямо на GPU.Modifier.graphicsLayer {
rotationZ = 15f
scaleX = 1.2f
alpha = 0.8f
}
Используйте с осторожностью: эти эффекты хорошо работают на графических процессорах, но проверяйте производительность на устройствах более низкого класса.
Делитесь в комментариях лайфхаками, которыми вы пользуетесь
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM